Comment utiliser les fonctions Minimum/Maximum, Ceil up/Ceil down (arrondir) et les scripts Ruby
Voyons comment fonctionnent les fonctions, en utilisant la table des produits comme exemple.
Ce tableau contient les colonnes suivantes:
Nom de la marque et modèle;
Image;
Prix pour juin, juillet et août.
La tâche consiste à afficher le prix le plus bas pour les trois mois.
La première étape consiste à ajouter le champ Formule au formulaire.
Sélectionnez «Fonction» dans la première liste déroulante :
Sélectionnez «Minimum» dans la deuxième liste déroulante:
Ensuite, vous devez sélectionner les champs à comparer. Dans ce cas, il s'agit de trois champs de prix.
Et cliquez sur le bouton «Créer».
Le champ «Prix le plus bas» est désormais apparu dans notre tableau, qui compare les trois valeurs de l'enregistrement et affiche le minimum d'entre elles :
La fonction «Maximum» fonctionne exactement à l’opposé.
Considérez les fonctions «Ceil up» et «Ceil down». Voici un tableau avec les clients et leurs commandes.
La tâche consiste à arrondir la valeur dans la colonne «Montant à payer».
Créez un nouveau champ de formule et sélectionnez la fonction « Ceil up » (ou « Ceil down ») ;
Ensuite, vous devez sélectionner le champ requis dans la liste déroulante et spécifier la signification.
En conséquence, nous obtenons une colonne avec un montant arrondi:
Les scripts vous permettent d'effectuer des opérations logiques et arithmétiques.
Nous utiliserons le tableau « Ventes d'été » comme exemple. Ce tableau contient une colonne avec un responsable, sa durée de travail et la somme des ventes de l'été.
Créons un nouveau champ Formule, sélectionnons l’option Fonction et l’élément Script (Ruby) dans la liste suivante.
Vous pouvez utiliser les noms de champs HTML comme opérandes.
Cliquez sur le lien sous le champ de fonction «Comment insérer des données d'enregistrement»:
Une liste des champs disponibles s'affiche. Sélectionnez un champ dans la liste et copiez le nom HTML:
Vous pouvez également modifier le nom du champ HTML ici. Il suffit de saisir un nouveau nom et de cliquer sur le bouton « Mettre à jour » :
Les opérateurs arithmétiques et conditionnels suivants sont disponibles:
(+) addition
(-) soustraction
(*) multiplication
(/) division
(>) vrai, si l'opérande de gauche est supérieur à celui de droite
(<) vrai, si l'opérande de gauche est inférieur à celui de droite
(%) modulo division
(==) vrai, si les valeurs des deux opérandes sont les mêmes.
Opérateurs conditionnels:
(if) utilisé pour tester si une condition est vraie. Les valeurs de condition false et nil sont fausses, tandis que toutes les autres seront vraies.
(elsif) utiliser pour des conditions supplémentaires.
(||) utilisé pour tester plusieurs conditions.
Revenons à l'exemple précédent. La tâche consiste à calculer le bonus des managers.
Supposons que le taux de bonus dépend de plusieurs facteurs. Le premier est l'expérience professionnelle dans l'entreprise.
Créons le script suivant:
if work_months > 12
300
Cela signifie que si un employé travaille dans l'entreprise depuis plus de 12 mois, il recevra une prime de 300 $.
Créons une autre condition. Si le manager a réalisé plus de 7 000 ventes, il recevra 150 $ + 25 %.
Le script devrait ressembler à ceci:
elsif sales > 7000
(150*0.25)+150
Dans tous les autres cas, le bonus sera de 150 $
else
150
Il est nécessaire de spécifier end, pour que le script fonctionne correctement.
Nous pouvons maintenant calculer le bonus pour chaque manager:
Méthodes et opérateurs disponibles: to_f, to_i, to_s, round, floor, ceil, ceiling_up, ceiling_down, include?, if, elsif, else, end.
Pour vérifier si le champ contient une valeur spécifique, vous pouvez également utiliser l'élément [ ].
Exemple d'utilisation:
if 'supplies' ['stock']
true
else
false
end
Vous pouvez également utiliser deux variables : a et b
En plus des opérateurs arithmétiques, vous pouvez utiliser des fonctions trigonométriques, logarithmiques, transcendantes et des racines de base. Les fonctions doivent être écrites comme suit : Math::function(Field_name). Par exemple, Math::acos(Field_csIfon). Liste détaillée des fonctions mathématiques :
Fonctions trigonométriques
(::cos) Renvoie le cosinus de l'argument donné.
(::sin) Renvoie le sinus de l'argument donné.
(::tan) Renvoie la tangente de l'argument donné.
Fonctions trigonométriques inverses
(::acos) Renvoie l'arc cosinus de l'argument donné.
(::asin) Renvoie l'arc sinus de l'argument donné.
(::atan) Renvoie l'arc tangente de l'argument donné.
(::atan2) Renvoie la tangente arg de deux arguments donnés.
Fonctions trigonométriques hyperboliques
(::cosh) Renvoie le cosinus hyperbolique de l'argument donné.
(::sinh) Renvoie le sinus hyperbolique de l'argument donné.
(::tanh) Renvoie la tangente hyperbolique de l'argument donné.
Fonctions trigonométriques hyperboliques inverses
(::acosh) Renvoie le cosinus hyperbolique inverse de l'argument donné.
(::asinh) Renvoie le sinus hyperbolique inverse de l'argument donné.
(::atanh) Renvoie la tangente hyperbolique inverse de l'argument donné.
Fonctions d'exponentiation et logarithmiques
(::exp) Renvoie la valeur d'une valeur donnée élevée à une puissance donnée.
(::log) Renvoie le logarithme d'une valeur donnée dans une base donnée.
(::log10) Renvoie le logarithme en base 10 de l'argument donné.
(::log2) Renvoie le logarithme en base 2 de l'argument donné.
Fonctions de fraction et d'exposant
(::frexp) Renvoie la fraction et l'exposant de l'argument donné.
(::ldexp) Renvoie la valeur d'une fraction et d'un exposant donnés.
Fonctions de la racine
(::cbrt) Renvoie la racine cubique de l'argument donné.
(::sqrt) Renvoie la racine carrée de l'argument donné.
Fonctions d'erreur
(::erf) Renvoie la valeur de la fonction d'erreur de Gauss pour l'argument donné.
(::erfc) Renvoie la valeur de la fonction d'erreur complémentaire pour l'argument donné.
Fonctions gamma
(::gamma) Renvoie la valeur de la fonction gamma pour l'argument donné.
(::lgamma) Renvoie la valeur de la fonction gamma logarithmique pour l'argument donné.
Fonction hypoténuse
(::hypot) Renvoie sqrt(a**2 + b**2) pour les valeurs a et b données.
Voici quelques exemples de la manière dont vous pouvez simplifier votre travail à l'aide de fonctions.
Nous avons un tableau de candidats à l'emploi:
La tâche consiste à répartir les candidats en trois groupes : un candidat approprié, un candidat de réserve et un candidat inadapté.
Nous pouvons utiliser le formulaire de recherche, mais nous devrons alors utiliser tous les critères:
Un champ de formule avec une fonction vient à la rescousse. Créons une nouvelle formule « Sélection ».
Nous devons diviser les candidats en trois groupes conditionnels.
Si le candidat a :
- Âge inférieur à 45 ans ;
- Éducation supérieure ;
- Expérience professionnelle supérieure à 5 ans ;
- Une recommandation d'un employeur précédent, alors ce candidat reçoit le statut « Convient ».
Pour le groupe « Réserve », un candidat doit avoir moins de 50 ans, une éducation supérieure ou tertiaire et plus de 5 ans d'expérience professionnelle.
Tous les autres candidats reçoivent le statut « Inadapté ».
Écrivons le code suivant pour la fonction:
if age<45 && "education" == "Supérieur" && exp>5 && "recommend" == "Oui"
"Appropriée"
elsif age<50 && "education" == "Supérieur" || "Tertiaire" && exp>5
"Réserve"
else
"Inappropriée"
end
Attention: les valeurs numériques (y compris les noms de champs HTML) ne sont pas entre guillemets. Les guillemets ne sont utilisés que pour les valeurs de chaîne.
Comme vous pouvez le voir dans la capture d'écran suivante, chaque candidat s'est vu attribuer un statut en fonction des critères:
Il est beaucoup plus facile de rechercher sur un seul champ plutôt que sur plusieurs critères:
La même chose avec la mise en forme conditionnelle dans un tableau:
Nous utilisons le champ « Sélection » pour formater les enregistrements dans la table:
Il est beaucoup plus pratique de générer un rapport après avoir effectué une recherche ou un regroupement par champ:
Qui contient tous les candidats selon des critères sélectionnés:
N'oubliez pas les actions conditionnelles et le champ Action.
Par exemple, créez un bouton avec l'action « Envoyer un e-mail », qui est disponible uniquement dans l'enregistrement avec les candidats « appropriés ».
Un champ de fonction peut être utilisé comme critère dans les règles de champ.
Par exemple, activez le champ « Sélection » sur le formulaire:
Ensuite, créons un nouveau champ « Ajouter à la file d'attente » (bouton radio) avec un choix de deux valeurs:
Créez une règle.
Si le champ « Sélection » contient « Réserver », affichez le champ « Ajouter à la file d'attente »:
Voilà à quoi cela ressemble sur le formulaire:
Ces fonctions permettront non seulement une gestion plus efficace des données, mais aussi des calculs plus complexes.
Prenons par exemple un tableau de définition des bénéfices:
La tâche consiste à calculer le bénéfice total.
La formule ressemble à ceci : bénéfice total = revenu - coût total
Si nous effectuons un tel calcul à l'aide de formules standard, nous devrons alors diviser le calcul en plusieurs formules (calculer séparément le revenu et le coût total).
À l'aide des fonctions Ruby, vous pouvez effectuer ce calcul dans un seul champ:
(sell_price*quantity)-(buy_cost*quantity)
Bénéfice total dans le tableau:
Attention: pour un calcul correct, vous devez utiliser le type de champ « Décimal ».
Compter les jours entre les dates
Par exemple, nous utiliserons un tableau avec des contrats.
Tâche: afficher le nombre de jours pendant lesquels le contrat prendra fin.
Créez le script suivant:
exp_date.mjd - DateTime.now
Où:
exp_date - html nom du champ.
.mjd méthode -convertit la date au format du calendrier julien.
DateTime.now - objet dont la valeur est la date et l'heure locales actuelles.
En conséquence, nous obtenons une colonne avec le nombre de jours jusqu’à la fin du contrat.
Voici un autre exemple.
Tâche : déterminer l'année de naissance en ne connaissant que l'âge d'une personne.
Créez le script suivant:
DateTime.year - age
Où:
age - html nom du champ.
DateTime.year - objet dont la valeur est l'année en cours.
En conséquence, nous obtenons une colonne avec l’année de naissance de chaque personne.
Lien vers la vue d'enregistrement
À l'aide du script, vous pouvez créer un lien vers la vue d'enregistrement. Accédez au menu « Enregistrements » et ouvrez la vue d'enregistrement.
Copiez le lien dans la barre d'adresse:
Créez un champ de formule. Sélectionnez « Script (Ruby) » dans la liste. Vous devez utiliser la variable « a » et un lien d'enregistrement de l'étape précédente (écrit entre guillemets). Remplacez l'ID d'enregistrement par « Numéro d'identification d'entrée » de la liste par la valeur |internal_id| :
Ainsi, vous obtiendrez un lien vers l'enregistrement dans la table:
Vous pouvez utiliser un lien vers le widget Enregistrement de la même manière:
Nouveautés dans QuintaDB : commentaires d'enregistrement, événements de calendrier récurrents et plus encore
La bonne méthode. « Diviser pour mieux régner »: filtrer et sélectionner les données, configurer les autorisations des utilisateurs pour le tableau
Fonctions et scripts (champ Formule)